#include <stdio.h>

#define MAXN 10000

#define _cp(a,b) ((a)<(b))


int h[MAXN];

int n,p,c;

void init()
{
	n=0;
}

void ins(int e)
{
	for (p=++n;p>1&&_cp(e,h[p>>1]);h[p]=h[p>>1],p>>=1);

	h[p]=e;
}

int del(int * e)
{
	if (!n) return 0;

	for (*e=h[p=1],c=2;c<n&&_cp(h[c+=(c<n-1&&_cp(h[c+1],h[c]))],h[n]);h[p]=h[c],p=c,c<<=1);

	h[p]=h[n--];
	return 1;
}

int main()
{
	int e;
	ins(5);
	ins(4);
	ins(6);
	del(&e);
	printf("%d\n", e);
	del(&e);
	printf("%d\n", e);
	del(&e);
	printf("%d\n", e);
	return 0;
}
